package com.example.permissionsystem1_1.businessFunction.dao.repository;

import com.example.permissionsystem1_1.businessFunction.dao.entity.po.RoleFunctionPo;
import com.example.permissionsystem1_1.businessFunction.dao.entity.po.UserRolePo;
import com.example.permissionsystem1_1.common.businessFunction.BaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RoleFunctionDao extends BaseDao<RoleFunctionPo> {

    /**
     * 批量新增多条记录
     * @param pos
     * @return
     */
    int insertBatch(@Param("pos")List<RoleFunctionPo> pos);
    /**
     * 根据给定的字段值删除符合条件的多条记录
     * @param po
     * @return
     */
    int deletes(@Param("po") RoleFunctionPo po);
    //************************\\

    /**
     * 根据角色id查询全部功能信息
     * @param roleId
     * @return
     */
    List<RoleFunctionPo> selectAllFunctionsByRoleId(@Param("roleId")Long roleId);

    /**
     * 根据多个角色id查询全部功能信息
     * @param roleIds
     * @return
     */
    List<RoleFunctionPo> selectAllFunctionsByRoleIds(@Param("roleIds")List<Long> roleIds);

    /**
     * 根据给定的字段值删除符合条件的多条记录(roleId=1的超管角色除外)
     * @param po
     * @return
     */
    int deletesExcept(@Param("po") RoleFunctionPo po);

}
